package com.flex.reflection;

import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.util.List;

/**
 * 元信息接口
 * @author ganlt
 * @since 2019/09/23 11:38
 */
public interface MetaObj {
    /**
     * 获取注解
     * @return
     */
    AnnotationEntity getAnnotationEntity(Class<? extends Annotation> annotation);

    /**
     * 是否存在注解
     * @param annotation
     * @return
     */
     boolean hasAnnotation(Class<? extends Annotation> annotation);

    /**
     * 提交参数列表
     * @return
     */
     List<Type> paramsType();

    /**
     * 返回类型
     * @return
     */
     Type returnType();


}
